#include "Widget.h"
#include "ui_Widget.h"

#include <QTimer>
#include <QDateTime>

Widget::Widget(QWidget* parent) : QWidget(parent), ui(new Ui::Widget) {
    ui->setupUi(this);

    qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));

    // 开启一个1秒定时器，返回其ID
    id1 = startTimer(1000);
    id2 = startTimer(2000);
    id3 = startTimer(10000);

    QTimer* timer = new QTimer(this);
    // 关联定时器溢出信号和相应的槽函数
    connect(timer, &QTimer::timeout, this, &Widget::timerUpdate);
    timer->start(1000);
}

Widget::~Widget() {
    delete ui;
}

void Widget::timerEvent(QTimerEvent* event) {
    int id = event->timerId();
    if (id == id1) {
        ui->label1->setText(tr("timer1: %1").arg(qrand() % 10));
    } else if (id == id2) {
        ui->label2->setText(tr("timer2: %1").arg(qrand() % 10));
    } else {
        qApp->quit();
    }
}

void Widget::timerUpdate() {
    // 获取系统现在的时间
    QDateTime time = QDateTime::currentDateTime();
    // 设置系统时间显示格式
    QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");
    // 在行编辑器部件上显示时间
    ui->lineEdit->setText(str);

    int rand = qrand() % 300;
    ui->lineEdit->move(rand, rand);
}
